package com.hsteach.web.controller.buildingApply.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hsteach.common.annotation.Excel;
import com.hsteach.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 场所申请对象 tb_building_apply
 *
 * @author fanxquer
 * @date 2023-08-25
 */
@ApiModel(value = "ListBuildingApplyVo", description = "场所申请")
@Data
public class ListBuildingApplyVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @ApiModelProperty(value = "id", required = true)
    private Long id;

    /** 申请人id */
    @ApiModelProperty(value = "申请人id", required = true)
    private String personId;

    /** 申请名 */
    @ApiModelProperty(value = "申请名", required = true)
    private String applyName;

    /** 场所id */
    @ApiModelProperty(value = "场所id", required = true)
    private String buildingId;

    /** 场所名 */
    @ApiModelProperty(value = "场所名", required = true)
    private String buildingName;

    @ApiModelProperty(value = "建筑id", required = true)
    private String parentBuildingId;

    @ApiModelProperty(value = "建筑名", required = true)
    private String parentBuildingName;

    /** 用途 */
    @ApiModelProperty(value = "用途", required = true)
    private String userTo;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开始时间", required = true)
    private Date beginTime;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "重复申请开始时间", required = true)
    private Date repeatBeginDate;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间", required = true)
    private Date endTime;

    /** 创建人名称 */
    @ApiModelProperty(value = "创建人名称", required = true)
    private String createByName;

    /** 审核人 */
    @ApiModelProperty(value = "审核人", required = true)
    private String reviewBy;

    /** 审核人名称 */
    @ApiModelProperty(value = "审核人名称", required = true)
    private String reviewByName;

    /** 重复申请状态，0正常，1重复 */
    @ApiModelProperty(value = "重复申请状态，0正常，1重复", required = true)
    private Integer repeatStatus;

    @ApiModelProperty(value = "状态，0待开始、1进行中、2已结束、-2已取消、-1已拒绝", required = true)
    private Integer status;

    @ApiModelProperty(value = "拒接原因", required = true)
    private String rejectReason;

    @ApiModelProperty(value = "重复申请周期 DAY每天、WEEK每周、TWO_WEEK每两周、MONTH每月", required = true)
    private String repeatType;

    @ApiModelProperty(value = "重复申请截至日期", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date repeatEndDate;

    /** 占用模式，0时间模式，1课表模式 */
    @ApiModelProperty(value = "占用模式，0时间模式，1课表模式", required = true)
    private Integer timeMode;

    @ApiModelProperty(value = " 状态 1已审批，0未审批", required = true)
    private Integer applyStatus;

    /** 学段 */
    @ApiModelProperty(value = "学段，课表模式会有", required = true)
    private String period;

    @JsonIgnore
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间", required = false)
    private Date updateTime;

    @JsonIgnore
    private Integer curStatus;

    /**
     * 审批时间
     */
//    @JsonIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date approveTime;
}
